1. Field of the Invention
Embodiments of the invention relate to creating and editing 3D solids and surfaces in an intuitive manner, using a single tool that infers the most-likely correct action based on its context when applied to a particular geometry case by the user.
2. Description of the Related Art
Objects in a CAD system can be represented in a parameter-based way or in a geometry-based way. In a parameter-based representation, the object is modeled as a geometric data object along with a set of features and history that define the object. In a geometry-based representation, the object is simply represented as a set of geometric data.
In modern CAD systems, geometry can be created in three basic ways: from manipulation of 2D sections, creation of edge features by modifications to the sharp boundaries between faces (e.g., a fillet), and combining and manipulating solid primitives using a set of Boolean operations. Over time, every major CAD tool has organized these “section-based” and “edge-based” features according to their inputs and desired output. This organization resulted in many separate workflows located within many separate features and tools to perform these functions. Moreover, since these CAD tools essentially force the user to make up a recipe of desired functions, and only then ask for the calculation to occur, the user does not know the result until the operation has concluded. Changes to a model that are made after a completed operation involve rolling the history of the model backwards and redefining the operation with different selections and/or options. This makes changing a model a frustrating and time-consuming endeavor.
When editing a previously created solid or surface in a parametric system, the process requires step-by-step re-creation of the original solids and/or surfaces. To modify the object, changes must be rolled back, and the new change must be made before a user can return to the current step. This is a consequence of parametric systems having added many history features on top of the actual geometry modeling functionality. These systems have interwoven these features into the software so that making changes requires a lot of effort and additional steps to maintain the information in the step-by-step history. Specifically, they require editing the particular historical step that parameterized the object instead of changing the object itself. These methods allow a user to modify a feature of an object only when the object is in the same state as it was when the feature was created.
Other systems provide creation and editing actions using many different tools. To select the correct tool, the user must know in advance what object they want to modify and what action they want to perform, and what restrictions or caveats the tool will place on their ability to change the model in the future. For example, one tool may allow tangency to be set while defining the feature, while another will not. Even worse, some features allow constraints to be set when the features are created but not allow these constraints to be changed later, necessitating a delete and re-create action by the user. Further, little logic is performed by the system to determine the user's intention, requiring every break in the system logic to ask the user for further instruction. In addition, the user must switch between tools frequently to complete a set of modifications. The entire action must be completed to see the expected result; there is no preview of the appearance of the final object before regions are deleted and the result of the action is merged into the rest of the geometry.